package tmallservice

import (
	"sync"
)

// ServiceTradeOrder 结构体
type ServiceTradeOrder struct {
	// 服务商品的商家编码
	OuterIdSku string `json:"outer_id_sku,omitempty" xml:"outer_id_sku,omitempty"`
	// 服务商品的sku描述
	SkuDesc string `json:"sku_desc,omitempty" xml:"sku_desc,omitempty"`
	// 服务商品的卖家昵称
	SellerNick string `json:"seller_nick,omitempty" xml:"seller_nick,omitempty"`
	// 服务商品的店铺名
	ShopName string `json:"shop_name,omitempty" xml:"shop_name,omitempty"`
	// 服务商品的标题
	AuctionTitle string `json:"auction_title,omitempty" xml:"auction_title,omitempty"`
	// 服务商品额外属性
	Attributes string `json:"attributes,omitempty" xml:"attributes,omitempty"`
	// 付款时间
	GmtPay string `json:"gmt_pay,omitempty" xml:"gmt_pay,omitempty"`
	// 商品图片
	AuctionPic string `json:"auction_pic,omitempty" xml:"auction_pic,omitempty"`
	// 商家编码
	OuterIdP string `json:"outer_id_p,omitempty" xml:"outer_id_p,omitempty"`
	// 服务商品的类目
	CategoryId int64 `json:"category_id,omitempty" xml:"category_id,omitempty"`
	// 服务商品的sku id
	SkuId int64 `json:"sku_id,omitempty" xml:"sku_id,omitempty"`
	// 服务商品的id
	AuctionId int64 `json:"auction_id,omitempty" xml:"auction_id,omitempty"`
	// 服务商品的采购价。单位为分
	PurchasePriceUnit int64 `json:"purchase_price_unit,omitempty" xml:"purchase_price_unit,omitempty"`
	// 订单id
	OrderId int64 `json:"order_id,omitempty" xml:"order_id,omitempty"`
	// 购买数量
	BuyAmount int64 `json:"buy_amount,omitempty" xml:"buy_amount,omitempty"`
	// 服务的售卖价
	B2bPriceUnit int64 `json:"b2b_price_unit,omitempty" xml:"b2b_price_unit,omitempty"`
	// 主订单号
	ParentOrderId int64 `json:"parent_order_id,omitempty" xml:"parent_order_id,omitempty"`
	// 商品价格
	Price int64 `json:"price,omitempty" xml:"price,omitempty"`
}

var poolServiceTradeOrder = sync.Pool{
	New: func() any {
		return new(ServiceTradeOrder)
	},
}

// GetServiceTradeOrder() 从对象池中获取ServiceTradeOrder
func GetServiceTradeOrder() *ServiceTradeOrder {
	return poolServiceTradeOrder.Get().(*ServiceTradeOrder)
}

// ReleaseServiceTradeOrder 释放ServiceTradeOrder
func ReleaseServiceTradeOrder(v *ServiceTradeOrder) {
	v.OuterIdSku = ""
	v.SkuDesc = ""
	v.SellerNick = ""
	v.ShopName = ""
	v.AuctionTitle = ""
	v.Attributes = ""
	v.GmtPay = ""
	v.AuctionPic = ""
	v.OuterIdP = ""
	v.CategoryId = 0
	v.SkuId = 0
	v.AuctionId = 0
	v.PurchasePriceUnit = 0
	v.OrderId = 0
	v.BuyAmount = 0
	v.B2bPriceUnit = 0
	v.ParentOrderId = 0
	v.Price = 0
	poolServiceTradeOrder.Put(v)
}
